package com.cx.util;

import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import java.util.Date;
import java.util.Properties;

/**
 * @Description GroupOneproject-IntelliJ IDEA
 * @Author Pyc
 * @Date 2020/5/15 15:05
 * @Version 1.0
 */

public class SendMail {
    static String HOST = "smtp.126.com"; // smtp服务器
    static String FROM = "ldcr632414960@126.com"; // 发件人地址
    static String USER = "ldcr632414960@126.com"; // 用户名
    static String PWD = "GVKKBYEVGKMVYSPC"; // 126的授权码
    static String SUBJECT = "酒店登录"; // 邮件标题
//    static String TOS = "18888888888@163.com";

    /**
     * 发送邮件
     *
     *
     */
    public static void send(String TOS,String context) {
        System.out.println("start");
        Properties props = new Properties();
        props.put("mail.smtp.host", HOST);//设置发送邮件的邮件服务器的属性（这里使用网易的smtp服务器）
        props.put("mail.smtp.auth", "true");  //需要经过授权，也就是有户名和密码的校验，这样才能通过验证（一定要有这一条）
        Authenticator authenticator = new Authenticator() {
            @Override
            public PasswordAuthentication getPasswordAuthentication() {
                //填写自己的163邮箱的登录帐号和授权密码，授权密码的获取
                return new PasswordAuthentication(USER,PWD);
            }
        };

        Session session = Session.getDefaultInstance(props,authenticator);//用props对象构建一个session


        Message message = new MimeMessage(session);

        try {

            message.setFrom(new InternetAddress(FROM));// 加载发件人地址

            InternetAddress sendTo = new InternetAddress(TOS); // 加载收件人地址

            message.setRecipient(Message.RecipientType.TO,sendTo);// 发送给目标

            message.addRecipient(Message.RecipientType.CC, new InternetAddress(FROM));//设置在发送给收信人之前给自己（发送方）抄送一份，不然会被当成垃圾邮件，报554错

            message.setSubject(SUBJECT);//加载标题

//            Multipart multipart = new MimeMultipart();//向multipart对象中添加邮件的各个部分内容，包括文本内容和附件
//            BodyPart contentPart = new MimeBodyPart();//设置邮件的文本内容
//            contentPart.setText(context);
//            multipart.addBodyPart(contentPart);
//            message.setContent(multipart);//将multipart对象放到message中
//            message.saveChanges(); //保存邮件
//            Transport transport = session.getTransport("smtp");//发送邮件
//            transport.connect(HOST, USER, PWD);//连接服务器的邮箱
//            transport.sendMessage(message, message.getAllRecipients());//把邮件发送出去
//            transport.close();//关闭连接

            String str = "PYC： <br/>" +
                    "您好，您刚申请的修改密码，下面是所需的验证码<br/>" +
                    context+
                    "  <br/>" +
                    "如果不是本人，请删除邮件";
            //设置编码，防止发送的内容中文乱码。
            message.setContent(str, "text/html;charset=UTF-8");

            message.setSentDate(new Date());

            message.saveChanges();


            //3发送消息
            Transport.send(message);

            System.out.println("邮件已发出，"+TOS+","+context);


        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}
